Đối tượng bất biến

Trong lập trình hướng đối tượnghàm, đối tượng bất biến (tiếng Anh: immutable object hay unchangeable object)[1] là một đối tượng mà trạng thái của nó không thể bị thay đổi sau khi được tạo ra.[2] Nó trái ngược với đối tượng biến đổi (mutable object hay changeable object), mà có thể được thay đổi sau khi được tạo ra. Trong vài trường hợp, một đối tượng được xem là bất biến nếu ngay cả khi vài thuộc tính bên trong thay đổi nhưng trạng thái của đối tượng dường như không thay đổi theo cái nhìn từ bên ngoài. Ví dụ, một đối tượng sử dụng sự ghi nhớ để lưu kết quả tính toán nặng có thể vẫn được xem là đối tượng bất biến.Kiểu chuỗi và các loại đối tượng cụ thể khác thường được biểu diễn dưới dạng đối tượng bất biến để cải thiện khả năng đọc và hiệu quả thời gian chạy trong lập trình hướng đối tượng. Đối tượng bất biến cũng hữu ích vì nó vốn an toàn luồng (thread-safe).[2] Các lợi ích khác là nó dễ hiểu, và mang lại tính bảo mật cao hơn đối tượng biến đổi.[2]

Tài liệu tham khảo

WikiPedia: Đối tượng bất biến http://c2.com/cgi/wiki?ImmutableObject http://www.javapractices.com/Topic29.cjp http://www.javaranch.com/journal/2003/04/immutable... http://www.oxfordlearnersdictionaries.com/definiti... http://www.yegor256.com/2014/06/09/objects-should-... https://persistent.codeplex.com/ https://msdn.microsoft.com/en-us/library/system.co... https://facebook.github.io/immutable-js/ https://web.archive.org/web/20101020235317/http://... https://www.nuget.org/packages/System.Collections....